package com.matt.controller.api.controller;

import com.matt.foundation.constant.PermissionConstant;
import com.matt.foundation.utils.annotation.RequiredPermissions;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;

@RestController
@CrossOrigin
@RequestMapping("/api/weather")
@Slf4j
@Api(tags = "获取天气")
public class WeatherController {


    @GetMapping("/getWeather")
    @ApiOperation("获取最新的天气")
    @RequiredPermissions(PermissionConstant.API_Weather)
    public String  getWeather(){
        String result = "";
        BufferedReader in = null;
        try {
            String urlNameString = "https://api.caiyunapp.com/v2.6/F3KQ8o54B3jZ47ig/113.038017,28.137710/realtime";
//            String urlNameString = "https://api.caiyunapp.com/v2.6/F3KQ8o54B3jZ47ig/111.53,27.51/realtime";

            URL realUrl = new URL(urlNameString);
            // 打开和URL之间的连接
            URLConnection connection = realUrl.openConnection();
            // 设置通用的请求属性
            connection.setRequestProperty("accept", "*/*");
            connection.setRequestProperty("connection", "Keep-Alive");
            connection.setRequestProperty("user-agent",
                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            // 建立实际的连接
            connection.connect();
            // 获取所有响应头字段
            Map<String, List<String>> map = connection.getHeaderFields();
            // 遍历所有的响应头字段
            for (String key : map.keySet()) {
                System.out.println(key + "--->" + map.get(key));
            }
            // 定义 BufferedReader输入流来读取URL的响应
            in = new BufferedReader(new InputStreamReader(
                    connection.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
        } catch (Exception e) {
            System.out.println("发送GET请求出现异常！" + e);
            e.printStackTrace();
        }
        // 使用finally块来关闭输入流
        finally {
            try {
                if (in != null) {
                    in.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
        System.out.println("result="+result);
        return result;

    }
}
